I know LiteDB is probably not ideal for this, but is there any advice on deployment on a active/standby cluster?
Due to customer requirements project I'm working on has been deployed this way and the .db files are replicated to the standby. Failover occurs and in theory it picks up on the standby.
It appears to work in testing but there's concern that it may not be robust and have reports of some issues that haven't been reproduced (and no errors logged). May be totally unrelated, but want to check if anyone has deployed on such a cluster set up.
Long term the aim is to implement Mongo DB or similar for this.
Hello everyone @/all
I'm new to whole this, so plz correct me if I'm wrong:
1- A poco class when inserts into DB known as a Document;
2- If a poco class contains an object property of another poco class, this is a SubDocument;
Questions:
1- Does $
symbol refers to the main poco class/Document when used in LINQ-expressions?
2- Whats different between SELECT $ from students
and SELECT * from students
(Basically *
and $
)?
3- Whats is and the difference between Collection and Document ?
tnx in advance; Couldnt find out through docs...
System.Exception: LiteDB ENSURE: ReadFull must read PAGE_SIZE bytes [4096]
at LiteDB.Constants.ENSURE(Boolean conditional, String message)
at LiteDB.Engine.DiskService.ReadFull(FileOrigin origin)+MoveNext()
at LiteDB.Engine.WalIndexService.<>c__DisplayClass19_0.<<CheckpointInternal>g__source|0>d.MoveNext()
at LiteDB.Engine.DiskService.Write(IEnumerable`1 pages, FileOrigin origin)
at LiteDB.Engine.WalIndexService.CheckpointInternal()
at LiteDB.Engine.WalIndexService.TryCheckpoint()
at LiteDB.Engine.LiteEngine.Dispose(Boolean disposing)
at LiteDB.Engine.LiteEngine..ctor(EngineSettings settings)
I am looking at integrating this with an existing project, so we already have data models etc but we already have a Guid
based Id
field, is there a way to hint/tell Lite DB to just use that field to be the id .
Not fussed if it duplicates the custom Id
into _id
or some other mechanism, I just need to be able to query on the Guid
not the BsonValue
based Id, although I appreciate I may externally use a Guid
in my data access layer but internally it may have to just make a BsonValue
on the fly or something...
Anyway any advice on this would be great as I assume its a common use case, just couildnt find much in the docs around it
Also I have a query around dynamic style types, i.e I have a class with an interface property so when deserializing its not clear what C# type it is.
When I was using JSON.Net I had a custom JsonConverter
which handled that part, but im not entirely sure here how to mimic that with LiteDB, historically all the data used to be pumped out to raw json files using JSON.Net so generally it seems a good fit for just moving each json file to be its own collection, but not quite sure how to work around that bit
Dim Result = m_Col.Find(Function(x) x.Name.StartsWith("F")).ToList
--> If an entry starting with "F" is found, I get this exception:
System.NullReferenceException: "The object reference was not set to an object instance.
--> If no entry starting with "F" is found, I get an empty list "Result" (LiteDB.LiteCollection(Of T)
Where is my problem? Thanks for quick help!
query.Where($"Name = @p0", "Arthur");
, but it doesn't work. The parameter doesn't seem to be used.query.Where(x => x.Name == "Arthur");
Yooo, we're using LiteDB for a long-running Windows Service and having a couple of issues. It seems sometimes our customers won't clean-shutdown their stuff which isn't really avoidable... we've had someone end up with a full drive so the log wasn't committing I guess, but they get this on restarting our service now (we run Rebuild to check for ENSURE errors, as we had someone stuff without the ability to run our application for no reason before as Inserts would fail... so if Rebuild fails we pull our data out and remake the DB entirely)
Rebuild operation requires no log file - run Checkpoint before continue
I've got a copy of their DB, but even running Checkpoint before Rebuild doesn't seem to actually achieve anything here? It still shows that error