製品に料金がない製品配列からすべての製品を削除しようとしています。以下の私の質問では、レート配列の長さを調べようとしましたが、 どれも動作していないようです。どんな助けもありがとうございます。それは単にあなたの質問に含まれていないので、事前に空の配列を含む配列エントリを削除します
おかげ
var ProductRateSchema = new Schema({
product: {
type: Schema.ObjectId,
ref: 'products'
},
user: {
type: Schema.ObjectId,
ref: 'User'
},
rates: [{
type: Schema.ObjectId,
ref: 'rates'
}]
});
var InventorySchema = new Schema({
name: {
type: String,
default: '',
required: 'Please enter in a name',
trim: true
},
created: {
type: Date,
default: Date.now
},
user: {
type: Schema.ObjectId,
ref: 'User'
},
products: [productRateSchema]
});
var inventoryId = req.body.inventoryId;
var productId = req.body.productId;
// none of these queries work
db.inventory.findOneAndUpdate({ '_id': inventoryId,
{$pull: {'products': { product: productId, 'rates': { $eq:[] }}}}, function (err, result) {
});
db.inventory.findOneAndUpdate({ '_id': inventoryId,
{$pull: {'products': { product: productId, 'rates': {$size: {$lt: 1}}}}}, function (err, result) {
});
db.inventory.findOneAndUpdate({ '_id': inventoryId,
{$pull: {'products': { product: productId, 'rates': null }}}, function (err, result) {
});
どのようなクエリですか?ここにはスキーマ定義以外はありません。 –
クエリはそこにあり、スクロールバーはありませんが、スクロールするとさらに多くのコードが表示されます。 – noobie
が見つかりません。すべての試みが失敗する正当な理由があるので、本当に重要ではありません。すべての場合に欠けていた "query"と "update"という別個の引数があるため、主に無効な構文です。とにかく答える。 –